System and method for testing hardware or software modules via a computer network

ABSTRACT

The present invention is a system for facilitating the access by an end user to a component to be tested via a global computer network comprising an interface for enabling an end user to access a central computer network in communication with a component to be tested, said component to be tested residing on a second computer, means for interfacing the central computer network with the component to be tested on the second computer, means for enabling the end user to test the component to be tested on the second computer via the interface means and the central computer network, and means for transferring a result executed by the component on the second computer through the central computer network and to the end user.

RELATED APPLICATIONS

This is a continuation of application Ser. No. 09/417,591, filed Oct.14, 1999, now U.S. Pat. No. 6,708,327, all of which is incorporatedherein by reference.

FIELD OF THE INVENTION

The present invention is directed to online computer systems. Inparticular, the present invention is specifically directed to onlinesystems for enabling an end user to test and evaluate an electronic,software or computer component such as an evaluation module (EVM).

BACKGROUND OF THE INVENTION

The present invention is directed to providing end users with access toelectronic, software and hardware components, and most particularly toso-called Evaluation Modules (“EVM's”) via a worldwide computer network.The Internet or World Wide Web is one of the most critical technologicaldevelopments of the 1990's. The Internet has provided vast economicopportunities for numerous businesses and industries to vastly expandthe number and quality of their services.

One of the earliest and fastest emerging areas of Internet activity hasbeen in providing rapid, up-to-the-minute business information and thefacilitation of electronic commerce applications. To date, a number ofpatents have issued on Internet related systems, covering a wide arrayof applications.

U.S. Pat. No. 5,699,528 for example, discloses a bill delivery andpayment system in which users access a server computer on acommunications network to obtain billing information and to pay bills.Using a computer, the users access a website provided by the server toview the bill information and to instruct the server computer regardingthe details of bill payment.

U.S. Pat. No. 5,664,115 discloses a method and apparatus ofautomatically matching sellers of property with potential buyers througha communications network such as the Internet in which a host systemcommunicates with sellers and potential buyers over telephone ordedicated data transmission lines. The central server obtains and storesa first set of records each corresponding to a property to be sold. Aset of records can then be searched by a remote data terminal associatedwith the potential buyer. The results of the search are then provided tothe potential buyer who then indicates specific property listings thatthe potential buyer may be interested in purchasing.

U.S. Pat. No. 5,671,280 is directed to a system for electroniccommercial payment having a customer trusted agent associated with amoney module agent that establishes a secure session with the customerand the money module agent. Upon receiving a commercial payment request,the customer agent initiates a transfer of electronic money from themoney module.

U.S. Pat. No. 5,745,884 is directed to a system and method in whichremote users may be billed, on a per connection basis, for universaldata grade access to their home office servers. In this patent, aportable device is carried by a transient remote user within wirelessrange of an access point deployed, for example, at a hotel or airportlounge. A signaling system inside the portable device automaticallyinitiates wireless contact with the access point which is itselfconnected to a destination server.

U.S. Pat. No. 5,732,400 is directed to a system and method for enablingon-line transactional services among sellers and buyers having noprevious relationship with each other. The system includes a financialclearinghouse for receiving a request for goods or services from a buyerand making a real-time determination of a risk classification of thebuyer using an on-line repository of credit information. The financialclearinghouse determines a risk-based discount fee as a function of thebuyer's risk classification in order to establish a payment amount tothe seller from the clearinghouse. If the transaction is authorized bythe financial clearinghouse, the financial clearinghouse transmits thepayment amount to the seller and transmits an invoice to the buyer forthe purchase price of the transaction.

Over the last several years, much Internet activity has been focussedtoward the individual needs of particular industry and market segments.Recently, so-called Internet portals have gained popularity. Portalsprovide focused information and user content to a wide variety ofindustries, interest group segments and market groups. An example ofsuch a portal is TECHONLINE.COM, the website of the assignee of thepresent invention. This portal is directed to the needs of thetechnology and scientific communities.

Among the great needs within the technology community is that ofproviding remote end users with access to the electronic and computercomponents produced companies, such companies as Texas Instruments, forthe purpose of testing and evaluation. Such companies as TexasInstruments, Analog Devices, Motorola, Intel, etc., provide so-calledevaluation modules (EVM's) for components as well as compilers anddebuggers which are provided to potential customers. Such test modulesor EVM's and the software tools provide engineers, scientists andtechnicians with the opportunity to test and evaluate sophisticatedelectronic, software and computer equipment prior to its purchase. Inparticular, such modules permit such technology professionals todetermine whether a particular piece of technology meets their needs andthose of their companies prior to its purchase.

Unfortunately, heretofore, EVM's had to be individually produced andloaned out to potential customers for testing and evaluation. Such unitswere expensive and their physical distribution to potential end userswas time consuming and slowed down the evaluation and testing process.Because this equipment is often fragile, it is not uncommon for it tobreak during testing or transportation between testing or evaluationsites. As with any object, theft or “shrinkage” is also a potentialproblem. Furthermore, a fully operational sales force might require alarge number of EVMs for each product in its inventory, which could bean expensive undertaking for both the manufacturer and sales force.

There has been a long felt need for a system for proving evaluationmodules (EVM's) and the development Software which could be centrallyaccessed via a global computer network and which would enable amultitude of engineers, technicians and scientists to test whether thatparticular component met their individual needs. Such a system wouldsave substantial costs for component manufacturers, would expedite thesales and marketing cycle and would enable purchasers to make more rapidand informed purchasing decisions.

It would be particularly desirable to provide a system accessible via aglobal computer network whereby the EVM's and similar components from aplurality of manufacturers and the accompanying software could beselectively accessed and tested according to the individual needs ofpurchasers.

It is thus a principal object of the present invention to provide anevaluation module (EVM) and the development Software which can beaccessed and utilized via a global computer network.

It is a further object of the present invention to provide an onlinesystem for facilitating access by end users to a boards such as an EVMand the corresponding developmental software.

It is a further object of the present invention to provide access to anEVM without the limitations associated with prior art systems.

These and other objects of the present invention and features of thepresent invention will become apparent from the following summary anddetailed description.

SUMMARY OF THE INVENTION

In accordance with the present invention, a system for facilitating theaccess by a remote end user to components to be tested via a globalcomputer network comprising: an interface for enabling an end user toaccess a central computer network in communication with components to betested, said components to be tested residing on a second computer;means for interfacing the central computer network with the componentsto be tested on the second computer; means for enabling the end user totest the components to be tested on the second computer via theinterface means and the central computer network; and means fortransferring a result executed by the components on the second computerthrough the central computer network and to the end user.

In a further embodiment, the present invention comprises a system forfacilitating the remote access and use by an end user to components anddevelopment tools to be tested via global computer network comprising:an end user interface for enabling an end user to access a centralcomputer network in communication with components and div. Tools to betested, said components to be tested residing on a second computer;means for interfacing the central computer network with the componentsto be tested on the second computer; means for enabling the end user toformulate and compile a test for the component on the second computervia the interface means to the central computer network; means fortransferring the formulated and compiled software test for the componentto the component on the second computer; and means for transferring theexecuted test by the component through the central computer network tothe end user.

In a further embodiment, the present invention comprises a method forfacilitating the remote access and use by an end user to components tobe tested via global computer network comprising the following steps:providing an end user interface for enabling an end user to access acentral computer network in communication with components to be tested,said component to be tested residing on a second computer; interfacingthe central computer network with the component to be tested on thesecond computer; enabling the end user to formulate and compile testsoftware for the component on the second computer via the interfacemeans to the central computer network; transferring the formulated andcompiled test for the component to the components on the secondcomputer; and transferring the executed test by the components throughthe central computer network to the end user.

In still a further embodiment, the invention comprises a method forfacilitating the remote access and use by an end user to an EvaluationModule to be tested via global computer network comprising the followingsteps: providing an end user interface for enabling an end user toaccess a central computer network in communication with an EvaluationModule to be tested, said Evaluation Module residing on a secondcomputer; interfacing the central computer network with the EvaluationModule on the second computer; enabling the end user to formulate andcompile code on which the Evaluation Module may perform a test functionvia an interface to the central computer network; transferring theformulated and compiled code for the Evaluation Module utilizing a filetransfer protocol; and transferring the results of the executed testfunction by the Evaluation Module through the central computer networkto the end user.

The present invention permits engineers, scientists and technicians todirectly access real-time hardware and software products over a globalcomputer network such as the Internet for evaluation and development.Users can upload their own code, compile, link, assemble and execute onactual remote hardware, and then debug, test and benchmark their ownapplications while remaining in their Internet browser.

The evaluation of third party hardware and software technologies andproducts is a key process in developing applications. The presentinvention harnesses the communication power of the Internet tostreamline this vital evaluation and development process, saving timeand costs both for the engineer and for the company offering theevaluated product. These and other objects and features of the presentinvention will become apparent from the detailed description whichfollows.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is block diagram of the of the present invention.

FIG. 1A is a more detailed block diagram of the present invention.

FIG. 2 is a block diagram of a central server system of the presentinvention.

FIG. 3 is a block diagram of the administrative work station of thepresent invention.

FIG. 3A is a block diagram of the database server and subsystem of thepresent invention.

FIGS. 4-8 illustrate user screens for use in the evaluation moduleaccess and testing system of the present invention.

DESCRIPTION OF THE EMBODIMENTS

The present invention is directed to a system for facilitating access byindividuals to electronic software and hardware components, such asevaluation modules (EVM), for evaluation and testing via an onlineglobal computer network. In particular, the present invention isspecifically designed and intended to provide access by individual endusers to components such as EVM's via the Internet or World Wide Webusing an end user interface.

Over the past fifteen (15) years, personal computers have becomerelatively powerful and inexpensive and have gained widespread use in asignificant number of homes and businesses. With a modem, personalcomputers can communicate with other computers through communicationnetworks and access many resources on the Internet. Companies such asAmerica Online, CompuServe, and Prodigy, which traditionally providedso-called “content” over proprietary networks, have begun to provideaccess by personal computer users to an expansive international networkof networks known as the Internet.

As is well known by those skilled in the art, the World Wide Web isbuilt on the Internet. With common “Web Browser” software such asMosaic, NetScape Navigator, or Microsoft Explorer, end users may easilyaccess Internet information and services on the World Wide Web. A webbrowser handles the functions of locating and targeting information onthe Internet and displaying information provided by the Web Server. TheWorld Wide Web utilizes technology called “Hyper-Text” to organize,search and present information on the Internet. Using a browser, the enduser can select a word (“Hyper-Text word”) from a view document and belinked to another document featuring information related to the word.

Referring to the attached Figures, and in the context of the aboveoperational environment, the present invention is now more fullydescribed. As shown in FIG. 1 the present invention is broadly directedto a computer network for facilitating access by third parties tosoftware, electronic and computer components such as EVM's. For thepurposes of this invention, the term component also encompassessoftware, such as, but not limited to developmental software. Thepresent invention is designed, in one embodiment, to be utilized on theWorld Wide Web or Internet, although the present invention is equallyapplicable to other network environments. In a broadest embodiment, thepresent invention is directed to system for allowing end users to accessand test a component such as EVM via any global network.

In a most preferred embodiment, the invention initially comprises acentral server 10 and a plurality of end user work stations 14. In oneembodiment, the end users 14 may comprise individual users such asengineers and scientists who desire to access and use the system. Atransport medium 15, in one embodiment using Internet Protocols (IP),interfaces the end users 14 to the central server 10. Central server 10accesses a test component 17, including but not limited to an EVM, whichis under the control of a second computer 19. Second computer 19 mayoperate under a DOS or Windows environment. The central server system 10may comprise a Windows NT system, but is preferably a server such as theSun Microsystems Solaris 2.6 server (hereinafter the “SUN” or “SUNSystem”).

As shown in FIG. 1A, a more preferred embodiment of the presentinvention is shown in detail. This embodiment comprises the followingmost preferred components. Initially, the central system 10 includes aWeb Server 20, preferably under the control of the SUN system 10 whichhas the capabilities to produce dynamic output either as Perl, Javascripts or other executables. Secondly, the EVM computer 19 contains anEVM board 17 which runs programs such as debugger programs to beaccessed by third party end users 14. The EVM computer 19 uses acompiler program capable of running the compiler provided by the EVMmanufacturer. The system further includes interconnection software 23including FTP servers and clients. Telnet servers and clients and HTMLservers which control communication between system 10 and 19. The systemfurther includes network hardware 25, i.e., the hubs and cables requiredto connect the computers to the Internet. Finally, the system includesauthentication software 27 for facilitating the identification of endusers and the configuration of passwords within the computers of thesystem.

The end user workstations 14 may comprise any device that connects tothe system via the Internet or other IP transport methods and includes,but is not limited to, such devices as televisions, computers, hand-heldelectronic devices, wireless electronic devices, or any other devicethat uses IP's and uses a transport medium. Non-limiting examples of anacceptable transport medium 15 for use in the present invention includeany link such as an ATM link, FDDI link, satellite link, cable, twistedpair, fiber-optic, broadcast wireless network, the Internet, the WorldWide Web, Local Area Network (LAN), Wide Area Network (WAN), or intranetenvironment such as an Ethernet link. In such alternative cases, the enduser workstations 14 communicate with the central server 10 usingprotocols appropriate for the network to which that client is attached.All such embodiments and equivalents thereof are intended to be withinthe scope of the present invention.

Thus, it can be seen from the preferred embodiment of FIGS. 1 and 1A,that the system as a whole is comprised of a number of end user devices14 that communicate with the central server 10 and component to betested such as EVM board 19 residing on a second computer 19 through atransport medium 15 preferably using an appropriate protocol.

Referring to FIG. 2, a detailed block diagram of a preferred embodimentof a central server and system 10 for use with the present invention isshown. The central server 10, preferably operates under SUN operatingsystem such as Solaris 2.6, but could operate under a Windows NT systemor any other operating system. It is to be stressed that the nature ofthe operating system is not essential to the invention and that theinvention is not limited to particular operating systems. System 10includes two primary servers, Web Server 20 and Database Server 22. TheDatabase Server 22, in one embodiment, may utilize “SQL Server” databasemanagement software from Microsoft Corporation, but more preferablycomprises a package such as the Oracle 8 database management systemproduced and sold by Oracle Corporation. The Database Server 22 couplesto a Database Subsystem 30.

The Web Server 20 includes a Web Subsystem 26 which connects to a WebBrowser 28 situated in the end user stations 14. Apache 1.3.1 by ApacheGroup is an exemplary Web Server 20 software package for use in thepresent invention. Apache 1.3.1 includes a high performance web server,an application development environment, integrated full-text searching,multimedia streaming, and site management tools. This package alsoincludes support for HTTP, Java and Telnet compatible browsers to beginreceiving data from any part of a file for enhanced performance.

As noted, in a preferred embodiment, the Web Server 20 comprises theApache 1.3.1 operating under the SUN Solaris 2.6. The central system 10further includes up to 256 MB of ECC RAM, a graphics adapter capable ofdisplaying 1024.times.768 pixels with a depth of 8 bits, a 15 inchmonitor, a PCI Fast/Vide SCSI-2 I/O adapter, one PCI 10base2 Ethernetadapter and one PCI 100baseT Ethernet adapter, a keyboard and a mouse.

The central server and system 10 also preferably includes anAdministrator Workstation 24 that provides administrative capabilitiesfor the entire system. The Administrator Workstation 24 permitsadministrators or other operators of the system to perform routineoperations to effect the system. Such operations may include, but arenot limited to adding subscribers and users, adding, deleting or editingrecords, printing reports, updating records, performing backups, andmaintaining the programs that comprise the system.

The Administrator Workstation 24 is able to communicate directly withthe Web Server 20 and the Database Server 22. The Web Server 20 sendsretrieval or post event information as HTML (Hyper-Text Mark-upLanguage), Java of applet through the Web Subsystem 26 to a Web Browser28 software program based within the end user workstations 14 responsivedatabase queries input by the end users 14. The Database Server 22operates in concert with the Web Server 20 and maintains all the endusers' account information, profile financial records, and otherassociated transaction data as well as all interactions with the WebServer 20. The Web Subsystem 26 performs all interactions with the WebBrowser 28 in the end user device 14, and serves as the end userinterface to the system.

All of the systems described above preferably communicate, for example,via an Ethernet 100BaseT network and a Switching Hub. In addition, asecond, isolated, network segment may exist between the Web Server 20and the external communications hardware (Internet router), which keepsexternal traffic isolated from the internal network, as well asproviding a dedicated connection between the Web Server 20 and theInternet for maximum throughput.

As noted above, Web Server 20 is the point of entry to the system. Itdetermines the identify of the end user 14. The Web Server 20 sendsinformation to the end user workstation 14, validates end userpasswords, sends logging and transaction information to the DatabaseServer 22, and performs logical operations, thereby also behaving as atransactional server.

The operators and managers of the system may selectively create anddelete information by utilizing the Administration Subsystem 32 housedin Administration Workstation 24. Billing Subsystem 36 is responsiblefor system billing.

The Database Subsystem 30 resides in the Database Server 22.Communication and Billing Subsystems 39,36, respectively, executeessential services for other parts of the system, and have well definedapplication program interfaces (API). The system is preferably protectedfor the Internet by a firewall 37.

Referring now to FIG. 3, an Administration Subsystem 32 is shown ingreater detail. Administration Subsystem 32 provides an interface foroperators and managers of the system to modify at the Database Subsystem30, print reports, view system data, and log user comments andcomplaints. The Administration Subsystem 32 provides a collection 35 ofaccess forms, queries, reports, and modules to implement theadministration interface. The Administration Subsystem 32 interacts withCommunications 39, Database 30, and Billing 36 Subsystems.

Referring to FIG. 3A, the Database Subsystem 30 stores informationpertaining to users, administrator accounts, as well as the stored enduser profile criteria 45. All interactions with the Database Subsystem30 are performed through a Database API 40. The Database Subsystem 30 ispreferably implemented using the Database Server 22, and will be backedup on a regular basis 47.

Communications Subsystem 39 interfaces to a Comm API 44 and functions totransmit credit data and events to end users 14. The Billing Subsystem36 is used for billing and communicates through the Billing API 42 tothe Administration Subsystem 32. As noted above, billing can beaccommodated in the, present invention at the local server 12.

Database Server 22 implements the Database Subsystem 30 of the presentinvention. Through the Database Subsystem 30, the Database Server 22logs client setup and account creation information, member profiles 45and posted opportunities 47 event information and files, maintainsaccount balances, produces and prints reports, hosts backup operations,and performs statistical calculations for the entire system. TheDatabase Server 22, preferably using Oracle 8, which provides virtuallyunlimited scale ability and is compatible with the SUN 20. The DatabaseServer 22 is preferably a dual processor computer and includes aprocessor, and is preferably optimized specifically for the Oracle 8threading model. Each connection to the Database Subsystem 22 may behandled by a separate thread within the Database Server 22. DatabaseServer 22 may require additional processors in high volume environments.The dual processor machine of the preferred embodiment is sufficient forthe type and number of transactions that it will be performing. It is tobe noted that the Database Server 22 can be “striped” to two or moremachines to distribute the server load.

As noted above, in the preferred embodiment, at least one AdministrationWorkstation 24 is provided for administering the system. It is to beappreciated that additional operator workstations 24 may be added withextra computer systems, installing the administration software andconnecting them to the LAN.

The operation of the present invention is now described in detail withreference to the attached Figures, including. FIGS. 4-8 and the attachedAppendices which illustrate and detail operational embodiments of thepresent invention. Initially, the end user at workstation 14 uses hisWeb Browser 28 to access the central server 10. In an Internetenvironment, this will typically comprise a central web page such as thehome page of TECHONLINE.COM, site of the assignee of the presentinvention. In one embodiment, the present invention allows engineers,scientists and technicians to access products such as compilers,debuggers and linkers and to load code to hardware evaluation modulessuch as the TI TMS320C3X and the TI TMS320C54X.

As will be discussed herein, the use of the present invention benefitsgreatly from the application of the JavaJ programing language to developuniversal Internet Applets. The Applets are cross platform, and do notrequire the user to configure his browser. The development of theApplets enables the customization of a Graphic User Interface (GUI) foreach specific EVM and adds features which enhance product evaluations,such as interactive help files, mouse control, and other capabilities.In those cases in which a product cannot be evaluated on-line because ofbandwidth constraints, a virtual demo model can be designed using theJava language, web pages written in HTML with GIF images, and streamingvideo to give the user the look and feel of a genuine product.

In general, the use of the present invention is more fully described asfollows. Initially, the end user 14 accesses a welcome page by linkingthrough other pages or by directly accessing the URL for the site of thecentral server 10. As shown in FIG. 4, a first page introduces the userto the system and its benefits. General instructions 50 are provided anduser options are set out. Users will generally be able to select from aplurality of EVM's and proceed to individual EVM's provided by thesystem.

For purposes of describing the present invention, exemplary EVM'saccessible from the system include the Texas Instruments' TMS320C3x52and TMS320C54x family of compilers, debuggers, linkers and hardwareevaluation modules. It is anticipated that a multitude of other EVM'swill be available through the present invention. In the examplediscussed herein, the EVM's, supplied by Texas Instruments, comprisecomputer add-on cards that can be used in computer 19 which runs onMicrosoft Windows 3.1 or MS-DOS as an operating system. The debuggerused with the EVM's requires a minimum of a DOS operating system, butpreferably reside on a machine under the control of a Windows operatingsystem. The descriptions below are generalized to describe both familiesof currently available evaluation modules (EVMs).

As shown in FIG. 4, the end user 14 chooses from a plurality ofavailable options for the particular EVM. The options for the TexasInstrument's family of EVMs include the option of remotely compilingsample C code 54, compiling custom user supplied C code 56 or ofdirectly access the EVMs 58. The homepage also contain a suggestedsequence of steps. These include to first compile the code, download thecode onto the EVM machine and then to access the EVM.

The options for accessing the EVMs will in a preferred embodiment,further include both text and audio help 60. For text assistance, twoseparate windows appear, a help window and an access window. The texthelp window contains instructions and a troubleshooting link. Thetroubleshooting link connects to a FAQ (Frequently Asked Questions) page62. The access window comprises a telnet window implemented as a Javaapplet. This window contains a bar on the left-hand side with URL linksto the text of help steps. When chosen, the help text will also appearin the text help window. A window is provided for audio help whichcontains the Java telnet window, the left-hand bar and link for audiohelp. The audio help may be heard by the Internet user only with the aidof an audio RealAudio(tm) player.

Referring to FIG. 5, it is assumed that the end user 14 has chosen tocompile sample code. The options to configure the compiler and linkerare then presented. These options include viewing the assembly code 64,linking the code to make a load module 66 and viewing the size of theload module 68. The end user 14 may use any option by clicking on acheck box with his mouse. This part of the system provides compiler andlinker help 70. As shown in FIG. 6, after compiling the code, the enduser gets results and can then access the EVM and recompile code. Theuser loads the resultant files of the compiler into the debugger byclicking to access the EVM.

As shown in FIG. 6A, the present invention further incorporates ascheduling program that permits and/or restricts access to the EVM. Thiscan be used to allow dedicated hardware and software to be accessed byprospects and customers. The scheduling system allows end user toreserve one-hour time slots up to two days in advance. A four-digitidentification code is given to the end user when the reservation ismade. As shown in FIG. 7, the user then accesses the EVM that has beenreserved by entering the identification code 72.

The compiler tools for the EVM's operate under the SUN Solaris 2.6. Theintegration between the Sun and Windows 3.1 on computer systems 19 isnow described. All output that is generated from any scripts, programsor other executables on any machine or platform must be served to theclient through the Web Server 20 while maintaining security andauthentication.

The present invention generally performs the following method steps:First, it displays an introduction to the end user. Second, it lets theend user remotely compile and debug the C code using the EVM's nativecompiler. It then transfers the resulting object files and code to theEVM machine. The user is then connected to an EVM machine to execute thedebugger. FIG. 8 illustrates a list of commands which the end user 14may utilize while testing the EVM.

Web pages (HTML, HTM, CGI output, etc.) are served to the end user 14 todisplay the introduction and to guide the user through the system. Asnoted above, the SUN server 10 is used for compiling C code and as a WebServer. Obtaining user supplied C code and compiling is performed on theSUN 10 using a number of CGI scripts written in both Perl or Unix shelland HTML.

Once a successful compilation of C code has been accomplished, theresulting code and programs are transferred to the EVM computer 19 withEVM board 17 so that, for example, the EVM debugger can be accessed andused. In a preferred embodiment, FTP protocol is used to effectuate thistransfer. This transfer requires that the computer 19 be running an FTPserver (or daemon).

The user will choose through his Web Browser 28 to execute a CGI scriptthat will transfer his files to the EVM. The FTP server being used onthe EVMs is produced by FTP Software which is capable on running on theWindows 3.1 environment of EVM computer 19, and which is required by theEVM debugger.

After the transfer of files, the end user is then connected to the EVM19. Using either a Java application that can run in the user's webbrowser or through a telnet client, a telnet session is created underthe control of the SUN 10. As noted above in FIG. 6A, the end user isrequired to authenticate using a predetermined username and password.This requires that UNIX accounts have been set up on the SUN. Dependingon the username given, the account's profile is executed. This profileis a UNIX shell script that is automatically executed upon successfullogin.

A telnet connection is then automatically made to the selected EVM,which preferably runs Everywhere Access Telnet Daemon, Version 3.00c.The Telnet daemon on the EVM is configured to automatically launch theEVM debugger upon successful connection. Once the debugger session isterminated, the telnet connection from the SUN 20 to the EVM isautomatically terminated, which then, in turn, terminates the connectionbetween the user and the SUN.

As noted above, the system 10 keeps track of the code being compiled anddownloaded to each EVM and reserves scheduling time.

The following discussion and attached Appendices set forth in greaterdetail the precise operation of the web pages and scripts used toeffectuate the present invention. The specific HTML pages, CGI scriptsand programs used to connect a user to a TMS320C3x EVM (with audio help)are specifically set forth below.

http://www.dsplab.com/dsplab_new/

http://www.dsplab.com/ti/tol/c3x/c3x_home.html

http://www.dsplab.com/cgi-bin/t-c3x_compile (orhttp://www.dsplab.com/cgi-bin/t-c3x_compile_user_code for user code)

http://www.dsplab.com/cgi-bin/cmplnkexx.pl (orhttp://www.dsplab.com/cgi-bin/cmplnkexx.pl/user for user code)

http://www.dsplab.com/cgi-wsti/xfercodex.pl//export/home/tmp/$$

http://www.dsplab.com/ti/c3x_telnets.html

The home page is the initial starting point of the system. As notedabove, the end user 14 may choose an EVM such as either the C3x or C54xEVM. The home page for each respective EVM contains the choices tocompile sample code, compile custom code or to directly access the EVMs.The display of the next page depends on the user's selection. Either thecurrently available sample code is displayed or a form for entering newcode is displayed. This is accomplished using the t-cXx_compile andt-cXx_compile_user_code Perl scripts, where cXx indicates either c3x orc54x. To compile sample code, the t-cXx_compile script is used.Otherwise, the t-cXx_compile_user_code script is used to compile thegiven C code. Set for below is an outline of how each script functions.

The t-c3x_compiles script (written in Perl) opens the sample code,function.c in the directory/code and includes it in the printed HTMLpage presented to the end user. The HTML page contains a form, whichexecutes cmplnkexx.pl when the form is submitted. Appendix A sets forthe perl code for t-c3x compiles.

The t-c3x_compile_user_code script (written in Perl) displays the formneeded to input custom source code and the name for the code; the htmlpage contains a form, which executes cmplnkexx.pl (Perl) when the formis submitted. Appendix B sets forth the code fort-c3x_compile_user_code.

Both forms call the cmpinkexx.pl script, shown at Appendix C, but eachhave different parameters. A tag is put into the URL by the compilescript above if the user is supplying code. If that is the case, theuser-supplied name is attached to the code that is to be compiled,otherwise it is named function.c.

The Cmplnkexx.pl script (written in Perl) first parses its input todetermine if the code is user supplied or if it is the sample code. Codesupplied by the user is saved locally on a disk. If the code being usedis the sample code, then that is written to a temporary file on a diskin a staging directory. The saved code is then compiled according to theoptions that were supplied by the user. The tools are on the SUN in thedirectory/tools_dir. The compiling and linking is done on the SUN. Oncecompiled, the output files are stored in a staging directory,/export/home/tmp/$$, where the $$ refers to a Perl construct and is usedas an identifier. The identifier is generally a 3 or 4 digit code.

The next script to be run ishttp://www.dsplab.com/cgi-wsti/xfercodex.pl//export/home/tmp/$$, asshown in Appendix D. XFercode.pl (Perl) transfers the output files inthe staging directory via FTP to the appropriate EVM, in this example,to EVM1. Once the transfer is complete, the Gateway page (FIG. 7) isprinted and displayed to the user. The gateway page containsstep-by-step instructions on how to proceed through the gateway, an EVMcommand summary for the debugging tool and the actual links to connectto the EVMs with either audio or text help.

The connection link to the C3x EVM with audio help is located athttp://www.dsplab.com/ti/c3x_telnets.html. At this address links foraudio help steps are shown. The Telnet applet implemented in Java isloaded and is directed to make a connection with www.dsplab.com. Onceconnected, the user is instructed to log into the appropriate EVM. If nopassword is provided, the Java Telnet client supplies a “Disconnect”button for quick disconnection.

The profile (UNIX shell) of the EVM account on the SUN is designed toautomatically connect to the appropriate Windows 3.1 client and commencea debugging session using the tools discussed above. Once the debuggingsession ends, the connections to the EVM are broken and the user isdisconnected.

As noted, the EVM 19 is isolated from the rest of the Internet by theSUN system 10. This allows the SUN 10 to perform the necessaryauthentication, effectively leaving the EVM computers as “dumb devices.”By isolating the EVM's, any security break-ins must occur through theSUN. The SUN Solaris operating system can be configured to be a muchmore secure operating system or other environments.

The individual EVM debuggers include a Telnet daemon and FTP daemonrunning simultaneously. In a preferred embodiment, these daemons may becommercially available from FTP Software and Everywhere Access,respectively. A Cron (or clock) daemon periodically executes twoprograms that monitor the EVM machine for resets and, re-synchronize theclock with the SUN server 10.

An exemplary cron daemon for use in the present invention may be that ofSoftware Engineering, Inc. The system preferably further includes bothSyncTime and EVMReset programs. The SyncTime program queries the SUNserver for the correct time and resets the computer 19 time to thatprovided by the SUN 10. This is required because the time on the EVMcomputers may stray. THE EVMReset program monitors for a flag thatindicates that the EVM computer 19 has hung (i.e. become non-responsive)and resets the computer. The EVM can become non-responsive if any of theconnections between it and the SUN or the SUN and the end user abruptlyterminate. This can result from to network congestion, network breaks,or failed execution of scripts and programs.

The FTP daemon polls for the connections that xfercode.pl makes to theEVM. When the connection is made, the files of the end user 14 aretransferred and the connection is closed. The Telnet daemon is then usedonce the user has logged into the SUN. The end user logs into the SUNand the profile for the particular selected EVM is executed. The profilethen makes a Telnet connection with the EVM. The Telnet daemon on theEVM machine 19 is configured to automatically execute the debugger. Oncethe debugger session ends, the daemon terminates the Telnet connectionwith the SUN server 20. The SUN server 20 then terminates the login ofthe user.

The example discussed above utilizes the C3x. The set-up for the C54x orother EVM's is identical. Scripts specific to the appropriate evaluationboard being used are labeled as such (i.e., t-c3x_compile vs.t-c54x_compile). There are additional scripts that perform cleanupoperations, usually hourly. These include evm_management.pl (Perl) andws_management.pl (Perl). They perform the functions in an elaboratescheme of recording processes, monitoring and scheduling sessionactivity, and setting flags for the EVMs to reboot and cleanup.

The present invention has been described with reference to the abovedetailed description. The true nature and scope of the present inventionis to be determined with reference to the attached claims.

1. A method for evaluating performance of an evaluation module via anetwork, said method comprising: providing an end user interface forenabling selection of an evaluation module from a plurality ofevaluation modules, each of the selected evaluation modules beingfunctioning hardware configured to be tested to evaluate performancecriteria, and each of the selected evaluation modules being associatedwith a customized form of the end user interface; providing thecustomized end user interface for enabling access to the selectedevaluation module over the network; transmitting information from thecustomized end user interface to cause formulation of a test for theselected evaluation module based on a selection of a predefined code oruser supplied code, wherein the customized end user interface includesoptions for selecting either the predefined code or the user suppliedcode to be compiled; compiling the test into a resultant code that isexecuted by the selected evaluation module; measuring actions performedby the selected evaluation module during execution of the resultantcode; and receiving over the network at the customized end userinterface information indicating a performance of the selectedevaluation module based on the measured actions of the selectedevaluation module.
 2. The method of claim 1, further comprisingtransmitting an end user password from the end user interface over thenetwork for authentication of the end user password.
 3. The method ofclaim 2, wherein transmitting an end user password comprisestransmitting a plurality of end user passwords over the network from aplurality of end user interfaces for authentication of the plurality ofend user passwords.
 4. The method of claim 3, further comprisingtransmitting information from one of the plurality of end userinterfaces over the network for selecting of one of the plurality ofevaluation modules for testing.
 5. The method of claim 1, furthercomprising receiving over the network at the customized end userinterface text assistance information containing instructions and atleast one troubleshooting link.
 6. The method of claim 1, furthercomprising receiving over the network at the customized end userinterface audio assistance information playable through an audioapplication.
 7. A method for evaluating performance of a component bytesting the component via a network, the method comprising: providing anend user interface for enabling selection of a component from aplurality of components, each of the selected components comprising atleast one evaluation module being functioning hardware configured to betested to evaluate performance criteria for the selected component, andeach of the selected components being associated with a customized formof the end user interface; reserving a time to access the evaluationmodule by providing information through the customized end userinterface to a scheduling program: providing the customized end userinterface for enabling: access over a network to the evaluation module,formulation of a test for the evaluation module based on a selection ofa predefined code or user supplied code, compilation of the test into aresultant code that is executable by the evaluation module, transfer ofthe resultant code to the evaluation module, and measurement of actionsperformed by the evaluation module to execute the resultant code; andtransmitting to the customized end user interface information indicatinga performance of the component for the test based on the measurements ofthe actions performed by the evaluation module.
 8. The method of claim7, further comprising receiving an end user password from the end userinterface over the network and authenticating the end user password. 9.The method of claim 8, wherein receiving the end user password comprisesreceiving a plurality of end user passwords over the network from aplurality of end user interfaces and authenticating the plurality of enduser passwords.
 10. The method of claim 9, further comprising receivinginformation from one of the plurality of end user interfaces over thenetwork for selecting of one of the plurality of components for testing.11. The method of claim 7, further comprising transmitting to thecustomized end user interface text assistance information containinginstructions and a troubleshooting link and audio assistance informationplayable through an audio application.
 12. A method for evaluating acomponent, the method comprising: providing an end user interface forenabling selection of a component from a plurality of components, eachof the selected components comprising an evaluation module beingfunctioning hardware configured to be tested to evaluate performancecriteria for the selected component, and each of the selected componentsbeing associated with a customized form of the end user interface;reserving a time to access the evaluation module by providinginformation through the customized end user interface to a schedulingprogram; providing the customized end user interface for enabling:access over a network to the evaluation module, formulation of a testfor the evaluation module, based on a selection of a predefined code oruser supplied code, compilation of the test into a set of instructionsthat is executable by the evaluation module, determination ofperformance of the component based on actions performed by theevaluation module when executing the set of instructions; transmittingto a first processor a request to execute the set of instructions on theevaluation module; and routing to a second processor, coupled to thefirst processor, the set of instructions to be executed by theevaluation module based on the request; and receiving a result thatindicates actions performed by the evaluation module when executing theset of instructions.
 13. The method of claim 12, further comprisingtransmitting an end user password over the network for authentication ofthe end user password.
 14. The method of claim 13, wherein transmittingcomprises transmitting a plurality of end user passwords over thenetwork for authentication of the plurality of end user passwords. 15.The method of claim 14, further comprising transmitting information overthe network to cause selection of one of the plurality of components fortesting.
 16. The method of claim 12, wherein a client, coupled to thefirst processor, transmits the request over a network and causes therouting.
 17. The method of claim 16, comprising causing the secondprocessor to route the set of instructions to either the evaluationmodule or a component of software emulating the evaluation module basedon a condition of communications to the first processor.
 18. The methodof claim 12, wherein the evaluation module is coupled to an additionalcomponent of hardware.
 19. The method of claim 12, comprisingtransmitting to the first processor information indicating a conditionof communications to the first processor.
 20. A method for evaluatingperformance of a component by testing the component, the methodcomprising: providing an end user interface for enabling selection ofone of a plurality of components, wherein each of the selectedcomponents comprises an evaluation module that is functioning hardwareconfigured for testing the selected component to evaluate performancecriteria, and each of the selected components being associated with acustomized form of an end user interface; reserving a time to access theselected component by providing information through the customized enduser interface to a scheduling program: transmitting a request toperform a test based on a selection of a predefined code or usersupplied code, wherein the customized end user interface includesoptions for selecting either the predefined code or the user suppliedcode to be compiled; providing the customized end user interface forcausing a compilation of the test into a set of instructions, causing anexecution of the set of instructions at the evaluation module, andcausing a measurement of actions performed by the evaluation module whenexecuting the set of instructions; and receiving information indicatinga performance of the selected component based on the measurements of theactions performed by the evaluation module when executing the set ofinstructions.
 21. The method of claim 20, further comprisingtransmitting an end user password over a network for authentication ofthe end user password.
 22. The method of claim 21, wherein transmittingcomprises transmitting a plurality of end user passwords over thenetwork for authentication.
 23. The method of claim 22, furthercomprising transmitting information over the network to cause theselecting of one of the plurality of components.
 24. A method forfacilitating remote access by an end user to measure performance of acomponent based on evaluating the component via a network, the methodcomprising: providing an end user interface for enabling selection of acomponent from a plurality of components, each of the selectedcomponents comprising an evaluation module being functioning hardwareconfigured to be tested to evaluate performance criteria for theselected component, and each of the selected components being associatedwith a customized form of the end user interface; providing thecustomized end user interface for enabling: access over a network to theevaluation module, formulation of a test for the evaluation module,based on a selection of a predefined code or user supplied code frompredefined and user source code options available on the customized enduser interface, compilation of the test into a resultant code that isexecutable by the evaluation module, determination of performance of thecomponent based on actions performed by the evaluation module whenexecuting the resultant code; and transmitting information indicatingthe performance of the component for the test to the customized end userinterface.
 25. The method of claim 24, further comprising receiving anend user password from the end user interface over the network andauthenticating the end user password.
 26. The method of claim 25,wherein receiving the end user password comprises receiving a pluralityof end user passwords over the network from a plurality of end userinterfaces and authenticating the plurality of end user passwords. 27.The method of claim 26, further comprising receiving information fromeach of the plurality of end user interfaces over the network forselecting of one of the plurality of components for testing.
 28. Acomputer-readable medium comprising instructions which, when executed bya processor, perform a method for evaluating performance of a componentby testing the component via a network, the method comprising:presenting an end user interface to enable selection of one or morecomponents from a plurality of components, each of the selectedcomponents comprising at least one evaluation module for evaluatingperformance criteria of the selected component, and each of the selectedcomponents being associated with a customized form of the end userinterface; reserving a time to access the evaluation module using ascheduling program through the customized end user interface; creating atest for the evaluation module based on a selection of a predefined codeor user supplied code; compiling the test into a resultant code;transferring the resultant code to the evaluation module; executing theresultant code by the evaluation module; and receiving, by thecustomized end user interface, information indicating a performance ofthe component based on a measurement of actions performed by theevaluation module in response to executing the resultant code.